IncrediBuild 9からIncrediBuild 10へ移行してみた
IncrediBuild 10(以降、IB 10と表記)が2022年夏にされてしばらく経ちました。
IB 10はIB 9(IncrediBuild 9)と比較して「ビルドキャッシュが扱える」「Coordinatorがアプリからブラウザで操作できる」などのいくつかの新機能が追加されました。
それに伴い、私のビルド環境もIB 9からIB 10へ移行しました。移行にあたり、いくつか準備が必要で、つまづきやすいポイントがあることも分かりました。今後、私と同じ所でつまづかないように、IB 9からIB 10へ移行する手順を解説します。
構築環境
今回は以下の環境でIncrediBuild Cloudを活用した分散ビルド環境を構築しました。
- IncrediBuild 10.0.4 - Windows Server 2022 (AMI : Windows_Server-2022-English-Full-Base-2022.09.14)
移行手順
手順を解説していきますが手順をスキップするとつまづくことになるので、この手順で移行作業を進めてください。
IncrediBuild Cloudを非アクティブにする
IncrediBuild Cloudを利用している場合、IncrediBuild Cloudを非アクティブにします。 CoordinatorのDeactivate Cloudを選択することで、非アクティブになります。 これによりIncrediBuild CloudにあるHelperのインスタンスがすべて削除されます。
IB 9 ライセンスをアンロードする
IB 9のライセンスをアンロードします。IB 9のライセンスが適用されたままIB 10のライセンスを適用すると、ライセンスの二重ロックが発生しライセンスが適用されなくなります。もし二重ロックが発生した場合は、IncrediBuild社のサポートに問い合わせましょう。
アンロードはCoordinatorアプリケーションのメニューからCoordinator Settingsを選択し、Unload Licenseを選択します。するとダイアログが表示されるので、Unload Licenseのボタンを押して進めていきます。これでIB 9のライセンス解除などがすべて完了しました。
IB 10のCoordinatorを動作させるEC2 インスタンスを作成
今回はIB 10のCoordinatorを動作させるためEC2 インスタンスを新たに作成しました。もちろん既存のインスタンスを流用しても問題ありません。
EC2インスタンスを流用する場合は、システム要件にてWindow Serverのバージョンが該当しているか確認してください。IB 10よりWindows Server 2022が利用できます。
構築した環境は以下の構成です。
AMI : Windows_Server-2022-English-Full-Base-2022.09.14 InstanceType: t3.small ストレージ : 30 GB
セキュリティグループの設定
先ほどのEC2インスタンスにセキュリティグループを設定します。IB 10で必要なポートの設定はIB 9と異なりますので注意しましょう。設定内容は次の通りです。システム要件にも記載があります。
あとは、リモートデスクトップ接続で必要なポートも追加します。
(できれば)EIPの設定
EC2インスタンスにEIPを使って固定IPアドレスを振っておくとよいでしょう。Cooridinatorは多くのIncrediBuildがインストールされたPCから参照されるサーバですのでIPアドレスが変化すると影響がかなりあります。
Visual C++ 再頒布可能パッケージ(x86)をインストール
Windows Server 2019やWindows Server 2022へCoordinatorをインストールする場合は、事前にVisual C++ 再頒布可能パッケージ(x86)をインストールしておきます。今回インストールする必要があるのは32ビット版DLLですのでダウンロードするのは、vc_redist.x86.exeです。大事なことなので何度もいいますがインストールするのはx86版です。x64ではありません。
Google Chromeのインストール
IB 10のCoordinatorはブラウザからアクセスします。対応ブラウザがGoogle Chromeですのでインストールしておきます。
IB 10をインストール
ここでようやくIB 10のインストールです。インストール時の項目はデフォルトのままで進めて問題ありません。ここでは、インストールの途中で表示されるいくつかの設定項目について解説します。
今回はIB 10.0.4を使用してGrid(AgentとCoordinator)を選択しました。
IncrediBuild社から送られてきたライセンスキーを入力する画面も出ますが、ここはスキップして問題ありません。この後にCoordinatorの設定時に指定が求められるます。
CoordinatorとAgentの通信経路を暗号化するかどうかを指定します。暗号化する際にはSSL通信に必要な秘密鍵などを設定します。こちらはAgent同士の通信経路でも同じような設定が可能です。
CoordinatorのUsernameとパスワードを設定します。この後使用するCoordinatorにログインする際に必要となりますので忘れないようにしましょう。
Coordinatorの設定
インストールが完了した後、Coordinatorにログインしてみます。CoordinatorはWeb UIを備えてます。ログインするには、Coordinatorを設定したPCから、http://<CoordinatorをインストールしたPCのIPアドレス>:8000/login へアクセスします。CoordinatorをインストールしたPCから接続する場合は、http://localhost:8000/login となるでしょう。 接続するとログイン画面となりますので、先ほど指定したUsername、パスワードを指定してログインします。
接続した際、ブラウザから警告がでる事もありますが、その場合は無視して問題ありません。
Coordinatorでは、エージェントの管理やCoordinatorのネットワーク関連、ライセンスなどの設定を行います。今は特に設定することはないので、ログインできることを確認してください。
Incredibuild Cloudの設定
HelperとしてAWSなどクラウドを利用する場合はIncrediBuild Cloudの設定を行います。今回はヘルパーでAWSを利用するため設定します。設定項目は、IB 9でのIncrediBuildと同じです。
ではIncredibuild Cloudの設定を進めていきます。まず、CoordinatorのSettingのCloudを選択し、Scale to Cloudのボタンを押します。
するとIncredibuild Cloudのログイン画面となりますのでログインします。IncrediBuild Cloudを初めて利用する場合はユーザ登録が必要となります。
初回設定時は、利用するクラウドサービス(AWS、GCPなど)を選択します。AWSを選択した場合は、その次にRole AINなどを指定します。
私は以前Incredibuild Cloudを利用していたので設定不要でしたが、IB 10で初めてIncredibuild Cloudを利用する場合は、Obtaining AWS Login Detailsに従って IAM関連の設定が必要となります。そこでRole ARNとExternal IDを取得し、それらをIncrediBuild Cloudに設定します。
その他、Helperのインスタンスを起動するリージョン、Helperインスタンスのスペックや台数、ネットワークの接続に必要なポートの設定などを行います。
ここで割り当てるコアの数(Max Number of Cores)は、ライセンス数に従って設定しなければなりません。例えば80コア分のライセンスであれば、c5.4xlargeで16コアですので、5台分のインスタンスが利用できます。ですので以下のように割り当てます。
- Max Number of Cores: 80 - VM Pool Size:5
もちろん1台のEC2インスタンスに割り当てるコアの数を減らしEC2の台数を増やすこともできますが、EC2インスタンスの利用料金が嵩む上に分散しすぎてパフォーマンスが悪化するのでオススメしません。
Agentのインストール
次にVisual Studioがインストールされている開発用PCにIB 10をインストールします。こちらもGridとしてインストールします。
インストールした後は、Agent Settingを起動して、CoordinatorのIPアドレスとポート番号を指定します。Testボタンを押してCoordinatorと通信できることを確認します。
インストールすると、Visual StudioのIncrediBuildのプラグインがインストールされているので、それもあわせて確認するとよいでしょう。
Initiatorの接続確認
この段階で、CoordinatorがAgentを認識していることが確認できます。認識しているとCoordinatorにPC名が表示されます。
そして、分散ビルドの起点となる開発用PCにライセンスを割り当てます。これをしないとVisualStudioでビルドを行っても分散ビルドが行われません。
ライセンスの割り当ては、Coordinatorから開発用PCのマシンを右クリックしてInitiatorライセンスで Fixedを選択し、Submitボタンを押します。すると、開発用PCの一覧にInitiatorと表示されます。これでライセンスが割り当てられていることがわかります。
準備完了
これでようやく分散ビルドできる環境が整いました。
分散ビルドが機能しているか、ここではUnrealEngineのソースコードをVisualStudioを使ってビルドしてみました。分散してビルドしていることが確認できます。
まとめ
ポイントは以下の通りです。特に以下の点に気をつけてください。
- IB 9 の設定はすべて抹消する
- IB 10インストール前に Visual C++ 再頒布可能パッケージ(x86)をインストールする
- 開発用に対してCoordinatorからFixライセンスを割り当てる